AMQP客户端自动离线,为什么?

本文介绍AMAP客户端与物联网平台断连的可能原因和解决方法。

可能原因

说明

认证超时

建立连接之后,需要立刻发送认证请求。如果15秒内没有认证成功,服务器会主动关闭连接。

数据超时

服务端与物联网平台建立连接时,需传入心跳时间(AMQP协议参数idle-timeout),取值范围为30~300秒。 如果超过心跳时间,连接后无任何帧通信,物联网平台会关闭连接。

建立连接后,用户服务端需在心跳时间内发送PING包来维持连接。若没有在心跳时间内发送PING包,物联网平台会断开连接。

说明

使用阿里云提供的SDK,建立连接后,无需发送PING包维持连接。SDK存在保活心跳,只需保证主进程不退出即可。

连接次数限制

一个消费组1分钟内,消费端请求连接不超过100次。

说明

消费端是指接收物联网平台消息的AMQP客户端,而不是设备端。

AMQP客户端发现设备端断开后重连

物联网平台服务端发布或重启时,会与设备端断开。若设备端能正常重连,AMQP客户端离线重连属于正常现象。设备消息仍然会持续推送至AMQP客户端,不会被丢弃。

网络问题

断网、网络抖动等。

您可在配置AMQP客户端接入物联网平台时,根据AMQP协议和服务端使用限制,配置连接认证的逻辑。具体说明,请参见AMQP客户端接入说明

服务端使用限制的更多内容,请参见服务端订阅使用限制